<?
	
	##########################################
	/*			    INSTELLINGEN			*/
	##########################################

	/*bool*/	$stuurAlleEmailNaarDemo = true;
	/*string*/	$demoEmailAdres = 'demo.dorb@outlook.com';


	##########################################
	/*			EINDE CONFIGURATIE			*/
	##########################################
	if (!defined("FORMS_LOADED")) exit('Geen Forms geladen');
	
	function dorb_mail($to,$subj,$message,$headers="From: admin@dorb.com")
	{
		global $stuurAlleEmailNaarDemo;
		global $demoEmailAdres;
		
		try {
			if (mail(
				($stuurAlleEmailNaarDemo?$demoEmailAdres:$to),
				$subj,
				$message,
				$headers))
			{
				setLastFormResult(1,'De e-mail is verzonden!');
			}
			else
			{
				setLastFormResult(0,'De e-mail zou verzonden zijn, maar omdat de server lokaal draait, is dat niet gebeurd.');
			}
		} 
		catch (Exception $e) {
			setLastFormResult(0,'De e-mail zou verzonden zijn, maar omdat de server lokaal draait, is dat niet gebeurd.');
		}
	}
	
	function randomstring($len = 2) { 

		$chars = "ABCDEFGHIJKMNOPQRSTVWYZ"; 
		$i = 0; 
		$pass = '' ; 

		while ($i < $len) { 
			$pass .= $chars[rand(0,22)];
			$i++; 
		} 

		return $pass; 

	} 

	function getLastFormResult()
	{
		if (empty($_SESSION['LastFormResultOK']) && empty($_SESSION['LastFormResult'])) return false;
	
		$code = $_SESSION['LastFormResultOK'];
		$m = $_SESSION['LastFormResult'];
		
		unset($_SESSION['LastFormResultOK'],$_SESSION['LastFormResult']);
		
		return array('ok' => $code,'message' => $m);
	}
	
	function getLastFormResultHTML()
	{
		$fm = getLastFormResult();
		if (!empty($fm))
		{
			echo '<div class="boxmsg ' . ($fm['ok']==1?'green':'yellow') . '">' . $fm['message'] . '</div>';
		}
	}
	
	function setLastFormResult($ok,$v)
	{
		if ($ok == 0 || $ok == 1) {
			$_SESSION['LastFormResultOK'] = $ok;
			$_SESSION['LastFormResult'] = $v;
			return true;
		}
		else
		{
			die('Geen geldige OK-code');
		}
	}
	
	function maakSQLdatum($date)
	{
		date_default_timezone_set('Europe/Amsterdam');
		return date('Y-m-d',strtotime($date));
	}
	
	
	// Form afhandeling
	if (!empty($_POST))
	{
		if (empty($_POST['formid'])) exit('Kon de data niet verifiëren.');
		
		foreach ($allForms as $form)
		{
			
			switch ($_POST['formid'])
			{
				
				
				case 'inlogForm':
			
					//echo 'afhandelen: ' . $_POST['formid'];
			
					// Handel inlogformulier af.
					$username= $_POST['Inlognaam'];
					//$password = $_POST['Password'];
			
					// Er vindt geen WW controle plaatst nu
					$result = $mysqli->query("SELECT * FROM gebruiker WHERE email = '" . $username . "'");
					if (empty($username))
					{
						setLastFormResult(0,'Vul alle velden correct in.');
						redirect("home");
					}
					else
					{
						
						if (!$result) echo $mysqli->error();

						if($result->num_rows > 0)
						{
							$_SESSION['user'] = $username;
							setLastFormResult(1,'Welkom. U bent ingelogd als ' . $username . '.');
							redirect("home");
						}
						else
						{
							setLastFormResult(0,'Gebruikersnaam/wachtwoord niet gevonden. Probeer het opnieuw.');
						}
					}
					break;
					
				case 'wagenForm':
				
					//echo 'afhandelen: ' . $_POST['formid'];
			
					// Handel wagenForm af.
					$kentekenwagen= $_POST['Kenteken'];
					$beschikbaarwagen= $_POST['Beschikbaarheid'];
					
					//controleren of kenteken al bestaat
					$result = $mysqli->query("SELECT * FROM vrachtwagen WHERE kenteken = '" . $kentekenwagen . "'");
					if (!$result) echo $mysqli->error();

					if($result->num_rows == 0)
					{
						 $r = $mysqli->query('INSERT into vrachtwagen values ( "'. $kentekenwagen .'","'. $beschikbaarwagen. '")'); if (!$r) echo $mysqli->error;
						
						setLastFormResult(1,'Vrachtwagen is ingevoerd.');
						redirect("wagenpark");
					} 
					else
					{
						echo "<span style=\"font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #FF0444;\">";
						echo "Dit kenteken bestaat al "; 
					}
					break;
					
					case 'opleggerForm':
				
					//echo 'afhandelen: ' . $_POST['formid'];
			
					// Handel opleggerForm af.
					$kentekenoplegger= $_POST['Kenteken'];
					$beschikbaaroplegger= $_POST['Beschikbaarheid'];
					$vrachttypeoplegger= $_POST['Vrachttype'];
					
					
					//controleren of kenteken al bestaat
					$result = $mysqli->query("SELECT * FROM oplegger WHERE kenteken = '" . $kentekenoplegger . "'");
					if (!$result) echo $mysqli->error();

					if($result->num_rows == 0)
					{
						 $r = $mysqli->query('INSERT into oplegger values ( "'. $kentekenoplegger .'","'. $beschikbaaroplegger. '","'. $vrachttypeoplegger. '")'); if (!$r) echo $mysqli->error;
						
						setLastFormResult(1,'oplegger is ingevoerd.');
						redirect("wagenpark");
					} 
					else
					{
						echo "<span style=\"font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #FF0444;\">";
						echo "Dit kenteken bestaat al "; 
					}
					break;
				
				case 'orderForm':
				//echo 'afhandelen: ' . $_POST['formid'];
				
			
					// Handel orderForm af.
					$aanmaker= $_POST['Aanmaker'];
					$van= $_POST['Van'];
					$naar= $_POST['Naar'];
					$afhaalmoment= $_POST['Afhaalmoment'];
					$datum= maakSQLdatum($_POST['Datum']);
					$aflevermoment= $_POST['Aflevermoment'];
					$type= $_POST['Vrachttype'];
					$pallets= $_POST['Pallets'];
					
			
					 $r = $mysqli->query("INSERT INTO vrachten VALUES (null,'".  $aanmaker ."' , '" . $van . "',
						 '" . $naar . "', '" . $afhaalmoment . "', '" . $aflevermoment . "', '" . $datum. "', null , null , '" . $type. "', '" . $pallets . "','250','100')");
					 if (!$r) {
						echo $mysqli->error; 
					}
					else 
					{
						setLastFormResult(1,'order is toegevoegd.');
						redirect("order-plaatsen");
					}
					
					break;
					
					
					
									case 'locatieForm':
				//echo 'afhandelen: ' . $_POST['formid'];
				
			
					// Handel locatieForm af.
					$naam= $_POST['Locatie_Naam'];
					$postcode= $_POST['Postcode'];
					$huisnr= $_POST['Huisnummer'];
					$land= $_POST['Land'];

					
			
					 $r = $mysqli->query("INSERT INTO locatie VALUES (null,'".  $naam ."' , '" . $postcode . "',
						 '" . $huisnr . "', '" . $land . "')");
					 if (!$r) {
						echo $mysqli->error; 
					}
					else 
					{
						setLastFormResult(1,'Locatie is toegevoegd. U kunt deze nu terugvinden in de lijst en deze gebruiken om een order te plaatsen.');
						redirect("order-plaatsen");
					}
					
					break;
					
					
					
					
					
					
					
					
					
				case 'AccountForm':
				
					$r=$mysqli->query('SELECT * FROM gebruiker WHERE email="' . $_POST['Email'] . '"');
					if (!$r) {
						setLastFormResult(0,'Select gebruiker error');
						redirect('accountaanvragen');
					}
					
					if ($r->num_rows!=0)
					{
						setLastFormResult(0,'Vul alle velden in');
						redirect('accountaanvragen');
					}
					
					$mysqli->autocommit(false);
					
					// Maak Locatie aan
					$r = $mysqli->query('SELECT * FROM locatie WHERE naam="' . $_POST['Company'] . '" AND postcode="'.$_POST['Postcode'].'" AND huisnr="'.$_POST['Huisnummer'].'"');
					if (!$r) {
						$mysqli->rollback();
						setLastFormResult(0,'Select locatie error');
						redirect('accountaanvragen');
					}
					
					if ($r->num_rows==0)
					{
						$r=$mysqli->query('INSERT INTO locatie VALUES (NULL,"' . $_POST['Company'] . '","' . $_POST['Postcode'] . '","' . $_POST['Huisnummer'] . '","' . $_POST['Land'] . '")');
						if (!$r) {
							$mysqli->rollback();
							setLastFormResult(0,'Insert locatie error');
							redirect('accountaanvragen');
						}
						else
						{
							$locatie=$mysqli->insert_id;
						}
					}
					else
					{
						$a=$r->fetch_assoc();
						$locatie=$a['ID'];
						unset($a);
					}
					

					// Maak bedrijf aan
					$r = $mysqli->query('SELECT * FROM bedrijf WHERE naam = "' . $_POST['Company'] . '"');
					if (!$r) {
						$mysqli->rollback();
						setLastFormResult(0,'Select bedrijf error');
						redirect('accountaanvragen');
					}
					
					// NB: Hardcoded account manager
					if ($r->num_rows==0)
					{
						$r=$mysqli->query('INSERT INTO bedrijf VALUES (NULL,"' . $_POST['Company'] . '","' . $_POST['Email'] . '","' .$locatie  . '",NULL,"k.hoeka@dorb.com")');
						if (!$r) {
							$mysqli->rollback();
							setLastFormResult(0,'Insert bedrijf error');
							redirect('accountaanvragen');
						}
						else
						{
							$bedrijf=$mysqli->insert_id;
						}
					}
					else
					{
						$a=$r->fetch_assoc();
						$bedrijf=$a['ID'];
						unset($a);
					}
					
					
					// Insert into Gebruiker DB
					$r=$mysqli->query('INSERT INTO gebruiker VALUES ("' . $_POST['Email'] . '","' . randomstring(5) . '","' . $_POST['Telefoon'] . '","' . $_POST['Taal'] . '","' . $bedrijf . '")');
					if (!$r) {
						$mysqli->rollback();
						exit($mysqli->error);
						
						setLastFormResult(0,'Insert gebruiker error; '. $mysqli->error . '<br><br> ' . 'INSERT INTO gebruiker VALUES ("' . $_POST['Email'] . '","' . randomstring(5) . '","' . $_POST['Telefoon'] . '","' . $_POST['Taal'] . '","' . $bedrijf . '")');
						redirect('accountaanvragen');

					}
					else 
					{
						$mysqli->commit();
						$mysqli->autocommit(true);
						
						// Stuur admin een mailtje
						dorb_mail("sysop@dorb.com",'Nieuwe gebruiker','Er is een nieuwe gebruiker.');
						setLastFormResult(1, "Dank u wel voor uw aanmelding. Na controle van uw gegevens ontvangt u van ons een email met een inlognaam en wachtwoord."); 
						redirect('home');
					}
						
					break;
					
				/*
						id								integer unsigned auto_increment,
						gebruiker						varchar(255),
						feedback						varchar(2048),
						status							varchar(255),
						datum_aanmaak					date,
						datum_actie						date,
				*/
				
				case 'statusWijzig':
					switch($_POST['actie'])
					{
						case 'opgehaald':
							$status=4;
							break;
						
						case 'afgeleverd':
							$status=5;
							break;
						
						case 'vertraging':
							$status=9;
							break;
							
						default:
							setLastFormResult(0,"Fout bij invoeren!");
							redirect('mobile-overzicht-orders');
					}
					
					$r = $mysqli->query("INSERT INTO vrachtinfo VALUES ('".$_POST['vracht']."','$status',CURRENT_TIMESTAMP)");
					if (!$r) {
						setLastFormResult(0,'Insert status error');
						redirect('mobile-overzicht-orders');
					}
					else
					{
						setLastFormResult(1,'De status is opgeslagen');
						redirect('mobile-overzicht-orders');
					}
				
					break;
				
				case 'FeedbackForm':
					$r = $mysqli->query("INSERT INTO feedback VALUES (NULL,'".  $context['user']['email'] ."' , '" . $_POST['Bericht'] . "',
						 'open', CURRENT_TIMESTAMP, NULL)");
					 if (!$r) {
						echo $mysqli->error; 
					}
					else 
					{
						setLastFormResult(1,'Dank u wel voor uw feedback!');
						redirect("feedbackcentrum");
					}
				
					break;
					
				
				case 'ritplaatsenForm':
					/*
						Array ( 
							[formid] => ritplaatsenForm 
							[vrachtwagen] => 95AFSJ 
							[oplegger] => 36UABW 
							[chauffeur] => n.bax@dorb.com 
							[orders] => 
								Array ( 
									[0] => 495 
									[1] => 496 
									[2] => 497 
								) 
							[Submit] => 
						)
					*/
					
					$mysqli->autocommit(false);
					
					// rit aanmaken
					$r=$mysqli->query('INSERT INTO ritten VALUES (NULL,"' . $_POST['vrachtwagen'] . '","'. $_POST['oplegger'] .'","'. $_POST['chauffeur'] .'")');
					
					if (!$r) 
					{
						$mysqli->rollback();
						setLastFormResult(0,'Error insert rit');
						redirect('rit-plannen');
					}
					else
					{
						$rit=$mysqli->insert_id;
					}
					
					// ritten aan vrachten koppelen
					foreach ($_POST['orders'] as $k => $v)
					{
						$r=$mysqli->query('INSERT INTO ritten_vrachten VALUES ("'.$rit.'","'.$v.'")');
						if (!$r) 
						{
							$mysqli->rollback();
							setLastFormResult(0,'Error insert ritten_vrachten, vracht ' . $v);
							redirect('rit-plannen');
						}	
					}
					
					$mysqli->commit();
					
					setLastFormResult(1,'De rit is succesvol gepland');
					redirect('rit-plannen');
					$mysqli->autocommit(true);
					
					break;

				case 'wwVergetenForm':

					$r=$mysqli->query('SELECT * FROM gebruiker WHERE email = "' . $_POST['Email'] . '"');
					if (!$r)
					{
						setLastFormResult(0,'Error opvragen of gebruiker bestaat');
						redirect('wachtwoord-vergeten');
					}
					
					if ($r->num_rows==0)
					{
						setLastFormResult(0,'Dit e-mailadres staat niet bij ons geregistreerd');
						redirect('wachtwoord-vergeten');
					}
					else
					{
						dorb_mail($_POST['Email'],'Uw wachtwoord bij Dorb Logistics','Het wachtwoord van ' . $_POST['Email'] . '  is geheim');
						redirect('wachtwoord-vergeten');
					}
	
					
					break;
					

				case 'ProfileForm':
				case 'aanpassenForm':
				
					/*print_r($_POST);
				
					$r = $mysqli->query('update gebruiker set telefoon="' . $_POST['Telefoon'] . '", taal="1", where email="' . $_POST['E-mail'] . '"');
					if (!$r) {
						echo $mysqli->error; 
					}
					else {
					setLastFormResult(1,'De wijzigingen zijn nu opgeslagen.');
					if ($_POST['Nieuw_wachtwoord'] == $_POST['Nieuw_wachtwoord_ter_herhaling'])
					{
					if ($_POST['formid']=='aanpassenForm')
						redirect('gegevens-aanpassen?user=' . $_POST['E-mail']);
					else
						redirect('mijn-gegevens');
					}}
					break;
					*/
					if ($_POST['Nieuw_wachtwoord'] != $_POST['Nieuw_wachtwoord_ter_herhaling'])
					{ 
					setLastFormResult(0,'De nieuwe wachtwoorden zijn niet gelijk.');
					}
					else
					{
					setLastFormResult(1,'De wijzigingen zijn nu opgeslagen.');
					}
			}
			
		}
		
	}
	else 
	{
		//echo 'POST WAS EMPTY';
	}


?>